.TH llverfs 8 "2023 Apr 23" Lustre "configuration utilities"
.SH NAME
llverfs - filesystem verification tool for ldiskfs based on ext3vt
.SH SYNOPSIS
.BI llverfs
.RB [ -c
.I CHUNKSIZE_MB
.RB ]
.RB [ -h ]
.RB [ -o
.IR OFFSET_KB ]
.RB [ -l "] [" -p "] [" -r ]
.RB [ -s
.IR SIZE_MB ]
.RB [ -t
.IR TIMESTAMP ]
.RB [ -v "] [" -w ]
.I DEVICE
.SH DESCRIPTION
This program tests the correct operation of large filesystems and
the underlying block storage device(s).
This tool has two working modes:

In full mode, the program creates a subdirectory in the test
filesystem, writes n (files_in_dir, default=32) large (4GB) files to
the directory with the test pattern at the start of each 4KB block.
The test pattern contains a timestamp (to detect data written in a prior
run), relative file offset and per-file unique identifier (inode number,
to detect data written to the wrong location on disk). This continues
until the whole filesystem is full and then the tool verifies that the data
in all of the test files is correct.

In partial mode, the tool creates test directories with the
EXT2_TOPDIR_FL flag set (if supported) to spread the directory data
around the block device instead of localizing it in a single place.
The number of directories equals to the number of block groups in the
filesystem (e.g. 65536 directories for 8TB ext3/ext4 filesystem) and
then writes a single 1MB file in each directory. The tool then verifies
that the data in each file is correct.
.SH OPTIONS
.TP
.BR -c | --chunksize " \fICHUNKSIZE_MB"
IO chunk size in megabytes (default=1), with optional KMG suffix.
.TP
.BR -h | --help
Display a brief help message.
.TP
.BR -l | --long | --full
Run a full check, 4GB files with 4k blocks
.TP
.BR -o | --offset " \fIOFFSET_KB"
offset of IO start in kilobytes (default=0), with optional KMGTP suffix.
.TP
.BR -p | --partial
Run a partial check, with 1MB files
.TP
.BR -r | --read
Run test in read (verify) mode only, after having run the test in
.B -w
mode previously. The flag
.B --timestamp
is also needed in this case, using the timestamp printed out during the
.B --write
run.
.TP
.BR -s | --filesize " \fISIZE_MB"
File size in megabytes to use for the test, with optional KMGTP
suffix.  The default is 4096MB.
.TP
.BR -t | --timestamp " \fITIMESTAMP"
Set test start time as printed at the start of a previously interrupted test.
This is to ensure that read phases (or multiple read phases) after a separate
write phase will be able to check the validation data.
(default=current time())
.TP
.BR -v | --verbose
Run test in verbose mode, listing each read and write operation.
.TP
.BR -w | --write
Run test in write (test-pattern) mode (default run both read and write)
.SH SEE ALSO
.BR llverdev (8)
